perm filename CUT.LAN[EKL,SYS] blob
sn#860109 filedate 1988-08-17 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00011 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 cuts
C00009 00003 addition of cuts
C00011 00004 (proof commutcutadd)
C00012 00005 (proof assoc_cutadd)
C00014 00006 (proof classes)
C00016 00007 proof of facts about cuts: cut extensionality, totalcut1, antisymlesscut
C00019 00008 proof of facts about pluscut: nonempty loweclass, -upperclass
C00021 00009 proof pluscut_totalcut
C00028 00010 proof pluscut_dense
C00030 00011 to finish
C00039 ENDMK
C⊗;
;cuts
(wipe-out)
(get-proofs rat1 prf ekl sys)
(proof cuts)
(decl (ratset) (type: |@r→truthval|)(syntype: variable))
;definition of cut
(decl (cut)(type: |@ratset→truthval|)(syntype: constant))
(define cut |∀ratset.cut(ratset)≡
(∃r.ratset r)∧(∃r.¬ratset r)∧
(∀r s.ratset r∧¬ratset s⊃r<s)∧
(∀r.ratset r⊃(∃s.ratset s∧s>r))|)
(label cutdefinition)
(decl (|α!| |β!| |α!0| |α!1| |α!2|) (type: |@ratset|) (sort: cut))
(axiom |∀α!.∃r.α!(r)|)
(label cutdef)(label nonempty_lowercl)
(axiom |∀α!.∃r.¬(α!)(r)|)
(label cutdef)(label nonempty_uppercl)
(axiom |∀α! s r.α!(s)∧¬α!(r)⊃s<r|)
(label cutdef)(label totalcut)
(axiom |∀α! r.α!(r)⊃∃s.r<s∧α!(s)|)
(label cutdef)(label densecut)
(axiom |∀arb α!.arbεα!⊃ratio(arb)|)
(label cutmember_sort)
;equality of cuts is equality of sets
;Landau_th116,117,118 are property of equality.
;(ue ((setvar.|α!|)(setvar1.|β!|)) set_extensionality)
;(∀ARB.ARBεα!≡ARBεβ!)⊃α!=β!
(axiom |(∀arb.arbεα!≡arbεβ!)⊃α!=β!|)
(label cut_ext)
(axiom |∀α! β!.(∀r.rεα!≡rεβ!)⊃α!=β!|)
(label cut_extensionality)
;Landau_th119
;(derive |∀α!.∀r s.¬α!(r)∧r<s⊃¬α!(s)| (totalcut antisymlessrat))
(axiom |∀α!.∀r s.¬α!(r)∧s>r⊃¬α!(s)|)
(label upperclass)
;Landau_th120
;(derive |∀α!.∀r s.α!(r)∧s<r⊃α!(s)| * (use inconsistent mode: always)
; (use grat_lrat mode: exact direction: reverse))
(axiom |∀α!.∀r s.α!(r)∧s<r⊃α!(s)|)
(label lowerclass)
;(derive |(∀r r1.rεα!∧r1≤r⊃r1εα!)≡(∀r r1.rεα!∧¬r1εα!⊃r1>r)|
; totalordrat (open leqrat))
;(rw * (use grat_lrat mode: exact))
;(∀r r1.rεα!∧r1 ≤ r⊃r1εα!)≡(∀r r1.rεα!∧¬r1εα!⊃r < r1)
;(label totalcut1)
;greater than
(decl gc (type: |@ratset⊗@ratset→truthval|)
(syntype: constant)(bindingpower: 935))
(defax gc |∀α! β!.gc(α!,β!)≡∃r.α!(r)∧¬β!(r)|)
;less than
(decl lc (type: |@ratset⊗@ratset→truthval|)
(syntype: constant)(bindingpower: 935))
(defax lc |∀α! β!.lc(α!,β!)≡∃r.¬α!(r)∧β!(r)|)
;Landau_th121
;(trw |lc(α!,β!)⊃gc(β!,α!)| (open lc gc))
(axiom |∀α! β!.lc(α!,β!)⊃gc(β!,α!)|)
(label lessgreatcut)
;Landau_th122
;(trw |gc(α!,β!)⊃lc(β!,α!)| (open lc gc))
(axiom |∀α! β!.gc(α!,β!)⊃lc(β!,α!)|)
(label greatlesscut)
;(derive |∀α! β!.gc(α!,β!)≡lc(β!,α!)| (greatlesscut lessgreatcut))
(axiom |∀α! β!.gc(α!,β!)≡lc(β!,α!)|)
(label gc_lc)
;Landau_th123
;(trw |∀α! β!.¬(α!=β!∧lc(α!,β!))| (open lc))
(axiom |∀α! β!.¬(α!=β!∧lc(α!,β!))|)
(label noteqless)
;(trw |∀α! β!.¬(α!=β!∧gc(α!,β!))| (open gc))
(axiom |∀α! β!.¬(α!=β!∧gc(α!,β!))|)
(label noteqgreat)
(axiom |∀α! β!.¬(lc(α!,β!)∧lc(β!,α!))|)
(label antisymlesscut)
;see proof below
;totalordcut
;proof in two lines!!!
;(derive |¬α!=β!⊃lc(β!,α!)∨lc(α!,β!)| (cut_extensionality) (open lc))
;(label totalordcut1)
;(derive |lc(α!,β!)∨α!=β!∨gc(α!,β!)| (* lessgreatcut))
(axiom |∀α! β!.lc(α!,β!)∨α!=β!∨gc(α!,β!)|)
(label totalordcut)
;Landau_def32
(decl gec (type: |@ratset⊗@ratset→truthval|)
(syntype: constant)(bindingpower: 935))
(define gec |∀α! β!.gec(α!,β!)≡α!=β!∨gc(α!,β!)|)
;Landau_def33
(decl lec (type: |@ratset⊗@ratset→truthval|)
(syntype: constant)(bindingpower: 935))
(define lec |∀α! β!.lec(α!,β!)≡α!=β!∨lc(α!,β!)|)
;Landau_th124 125
;(trw |∀α! β!.gec(α!,β!)≡lec(β!,α!)|
; (use gc_lc mode: exact)(open gec lec))
(axiom |∀α! β!.gec(α!,β!)≡lec(β!,α!)|)
(label gec_lec)
;Landau_th126
;(trw |∀α! α!0 α!1.lc(α!,α!0)∧lc(α!0,α!1)⊃lc(α!,α!1)|
; (open lc) (transordrat))
(axiom |∀α! α!0 α!1.lc(α!,α!0)∧lc(α!0,α!1)⊃lc(α!,α!1)|)
;∀α! α!0 α!1.LC(α!,α!0)∧LC(α!0,α!1)⊃LC(α!,α!1)
(label transordcut)
;Landau_th127
(axiom |∀α! α!0 α!1.lec(α!,α!0)∧lc(α!0,α!1)⊃lc(α!,α!1)|)
(label Landau_a_th127)
;exercise
(axiom |∀α! α!0 α!1.lc(α!,α!0)∧lec(α!0,α!1)⊃lc(α!,α!1)|)
(label Landau_b_th127)
;exercise
;Landau_th128
(axiom |∀α! α!0 α!1.lec(α!,α!0)∧lec(α!0,α!1)⊃lec(α!,α!1)|)
(label translec)
(show *)
;addition of cuts
(proof pluscut)
;Landau_def34
(decl (pc) (type: |@ratset⊗@ratset→@ratset|)
(syntype: constant) (bindingpower: 975))
(define pc |∀α! β!.pc(α!,β!)=(λr.(∃r1 r2.α!(r1)∧β!(r2)∧r=r1+r2))|)
(label pluscutdef)
;(trw |∀α! β! r1 r2.α!(r1)∧β!(r2)⊃(pc(α!,β!))(r1 + r2)| (open pc))
(axiom |∀α! β! r1 r2.α!(r1)∧β!(r2)⊃(pc(α!,β!))(r1 + r2)|)
(label pluscutdef1)
;Landau_th129
;verification that pc is well defined
(axiom |∀α! β!.∃r2.(pc(α!,β!))(r2)|)
(label pluscutdef)(label pluscut_nel)
;see proof below
(axiom |∀α! β!.∃r.¬(pc(α!,β!))(r)|)
(label pluscutdef)(label pluscut_neu)
;see proof below
(axiom |∀α! β! s r.(pc(α!,β!))(r)∧s<r⊃(pc(α!,β!))(s)|)
(label pluscutdef)(label pluscut_tc)
;see proof below
(axiom |∀α! β! r.(pc(α!,β!))(r)⊃∃s.r<s∧(pc(α!,β!))(s)|)
(label pluscutdef)(label pluscut_dc)
;see proof below
(axiom |∀α! β!.cut(pc(α!,β!))|)
(label pluscutsort) (label simpinfo)
;exercise
;Landau_th130
(axiom |∀α! β!.pc(α!,β!)=pc(β!,α!)|)
(label commutcutadd)
;see proof below
(axiom |∀α! α!0 α!1.pc(pc(α!,α!0),α!1)=pc(α!,pc(α!0,α!1))|)
(label assoc_cutadd)
(proof commutcutadd)
(assume |(pc(α!,β!))(r)|)
(label commcut1)
(rw * (open pc))
;∃R1 R2.α!(R1)∧β!(R2)∧R=R1+R2
;deps: (COMMCUT1)
(define rx1 |∃r2.α!(rx1)∧β!(r2)∧r=rx1+r2| *)
(define rx2 |α!(rx1)∧β!(rx2)∧r=rx1+rx2| *)
(derive |β!(rx2)∧α!(rx1)∧r=rx2+rx1| * (use commaddrat mode: exact))
(trw |(pc(β!,α!))(r)| (open pc) *)
;(PC(β!,α!))(R)
;deps: (COMMCUT1)
(ci commcut1)
;(PC(α!,β!))(R)⊃(PC(β!,α!))(R)
(ue ((α!.β!)(β!.α!)) *)
;(PC(β!,α!))(R)⊃(PC(α!,β!))(R)
(derive |pc(α!,β!)=pc(β!,α!)| (* -2 cut_extensionality))
(proof assoc_cutadd)
(assume |(pc(pc(α!,α!0),α!1))(r)|)
(label ascut1)
(rw * (use pluscutdef mode: exact))
;∃R1 R2.(∃R3 R4.α!(R3)∧α!0(R4)∧R1=R3+R4)∧α!1(R2)∧R=R1+R2
;deps: (ASCUT1)
;we shouldn't need this
(define rv1 |∃r2.(∃r3 r4.α!(r3)∧α!0(r4)∧rv1=r3+r4)∧α!1(r2)∧r=rv1+r2| *)
(define rv2 |(∃r3 r4.α!(r3)∧α!0(r4)∧rv1=r3+r4)∧α!1(rv2)∧r=rv1+rv2| *)
(label ascut2)
(define rv3 |∃r4.α!(rv3)∧α!0(r4)∧rv1=rv3+r4| *)
(define rv4 |α!(rv3)∧α!0(rv4)∧rv1=rv3+rv4| *)
(label ascut3)
(rw ascut2 (use * mode: always))
;α!1(RV2)∧R=RV3+RV4+RV2
;deps: (ASCUT1)
(derive |α!(rv3)∧α!0(rv4)∧α!1(rv2)∧r=rv3+rv4+rv2| (ascut3 *))
(label ascut4)
(derive |(∃r1 r2.α!(r1)∧(∃r5 r6.α!0(r5)∧α!1(r6)∧r2=r5+r6)∧r=r1+r2)| *)
(trw |(pc(α!,pc(α!0,α!1)))(r)| (use pluscutdef mode: always) *)
;(PC(α!,PC(α!0,α!1)))(R)
;deps: (ASCUT1)
(ci ASCUT1)
;(PC(PC(α!,α!0),α!1))(R)⊃(PC(α!,PC(α!0,α!1)))(R)
(label assoc_cutadd)
(proof classes)
(unlabel SIMPINFO MINUSSORT)
;(axiom |∀α! s.s≠0⊃(∃r r1.¬α!(r)∧α!(r1)∧r1+s=r)|)
(define rxv |α!(rxv)| nonempty_lowercl)
(label cl1)
(define ryv |¬α!(ryv)| nonempty_uppercl)
(label cl2)
(derive |rxv<ryv| (cl1 cl2 totalcut))
(label cl3)
(assume |s≠0|)
(label cl4)
(ue ((r.ryv)(s.rxv)) minussort cl3
(use leqratdefinition mode: exact))
;RATIO(RYV-RXV)
(define nxv |nxv≠0∧nxv*s>(ryv-rxv)| (* cl4 Landau_th115))
(label cl5)
(deletel *)
(show landau_th115)
(derive |¬α!(nxv*s)| (* cl2 upperclass))
;(axiom |∀α! s.s≠0⊃(∃r r1.¬α!(r)∧α!(r1)∧r1+s=r)|)
(trw |rxv+ryv=ryv| *)
;RXV+RYV=RYV
;deps: (CL4)
;labels: LANDAU_TH115
;∀R R1.¬R=0⊃(∃N.¬N=0∧N*R>R1)
(show Landau_th115)
(derive |(∃r r1.¬α!(r)∧α!(r1)∧r1+s=r)|(cl1 cl2 *))
;proof of facts about cuts: cut extensionality, totalcut1, antisymlesscut
(proof cut_extensionality)
;cutmember_sort
;∀r α!.rεα!⊃ratio(r)
(assume |∀r.rεα!≡rεβ!|)
(derive |∀r.rεα!⊃rεβ!| *)
(assume |arbεα!|)
(derive |ratio(arb)| (* cutmember_sort))
(trw |arbεβ!| (-3 -2) (use * mode: always))
;ARBεr1
(ci (-5 -3))
;(∀r.rεα!≡rεβ!)∧ARBεα!⊃ARBεβ!
(ue ((r.r1)(r1.r)) *)
;(∀r.rεα!≡rεβ!)∧ARBεα!⊃ARBεβ!
(derive |(∀r.rεα!≡rεβ!)⊃(arbεα!⊃arbεβ!)| -2)
(derive |(∀r.rεα!≡rεβ!)⊃(arbεβ!⊃arbεα!)| -2)
(derive |(∀r.rεα!≡rεβ!)⊃(arbεα!≡arbεβ!)| (* -2))
;(derive |(∀r.rεα!≡rεβ!)≡(∀arb.arbεα!≡arbεβ!)| *)
;antisymlesscut
(assume |lc(α!,β!)∧lc(β!,α!)|)
(rw * (open lc))
;(∃r.¬α!(r)∧β!(r))∧(∃r.¬β!(r)∧α!(r))
(define rv |¬α!(rv)∧β!(rv)| *)
(define rw |¬β!(rw)∧α!(rw)| -2)
;labels: CUTDEF TOTALCUT
;(axiom |∀α! s r.α!(s)∧¬α!(r)⊃s < r|)
(ue ((α!.α!)(s.rw)(r.rv)) totalcut * -2)
;rW < rV
(ue ((α!.β!)(s.rv)(r.rw)) totalcut -2 -3)
;rV < rW
(derive |false| (* -2 antisymlessrat))
(ci -7)
;¬(LC(α!,β!)∧LC(β!,α!))
;proof of facts about pluscut: nonempty loweclass, -upperclass
(proof pluscutfacts)
;nonempty lowerclass
(define rw1 |α!(rw1)| nonempty_lowercl)
(label nc1)
(define rw2 |β!(rw2)| nonempty_lowercl)
(label nc2)
(trw |(pc(α!,β!))(rw1 + rw2)| (open pc) nc1 nc2)
;(PC(α!,β!))(RW1+RW2)
(derive |∃r2.(pc(α!,β!))(r2)| *)
(derive |∀α! β!.∃r2.(pc(α!,β!))(r2)| (*))
;nonempty upperclass
(define rw3 |¬α!(rw3)| nonempty_uppercl)
(label nuc1)
(define rw4 |¬β!(rw4)| nonempty_uppercl)
(label nuc2)
(assume |α!(r)∧β!(r1)|)
(label nuc3)
;labels: GRAT_LRAT
;∀r r1.r > r1≡r1 < r
(derive |rw3>r∧rw4>r1| (nuc1 nuc2 nuc3 totalcut)
(use grat_lrat mode: exact))
(label nuc4)
;labels: GREAT_GREAT_ADDRATPRESERVING
;∀r s r1 r2.r1 > r∧r2 > s⊃r1 + r2 > r + s
(ue ((r.r)(s.r1)(r1.rw3)(r2.rw4))
great_great_addratpreserving *)
;RW3+RW4>R+R1
;deps: (NUC3)
(trw |(rw3+rw4)≠(r+r1)| (* strictrat2))
;¬RW3+RW4=R+R1
;deps: (NUC3)
(ci nuc3)
;α!(R)∧β!(R1)⊃¬RW3+RW4=R+R1
(derive |¬∃r s.α!(r)∧β!(s)∧r + s=rw3 + rw4| *)
(derive |¬(pc(α!,β!))(rw3+rw4)| * (open pc))
(derive |∃r.¬(pc(α!,β!))(r)| *)
;end of the proof nonempty_uppercl
;proof pluscut_totalcut
;want:
;∀α! β! s r.(pc(α!+β!))(r)∧s<r⊃(pc(α!+β!))(s)
;(label pluscutdef)(label pluscut_tc)
(proof pluscut_totalcut)
1. (assume |(pc(α!,β!))(r)|)
(label pc_tc1)
2. (rw * (open pc))
;∃R1 R2.α!(R1)∧β!(R2)∧R=R1+R2
;deps: (PC_TC1)
3. (define ry1 |∃r2.α!(ry1)∧β!(r2)∧r=ry1 + r2| *)
;RY1 is unknown.
;the symbol RY1 is given the same declaration as R
;deps: (PC_TC1)
4. (define ry2 |α!(ry1)∧β!(ry2)∧r=ry1 + ry2| *)
;RY2 is unknown.
;the symbol RY2 is given the same declaration as R
;deps: (PC_TC1)
(label pc_tc2)
5. (assume |s<r|)
(label pc_tc3)
6. (assume |ry1 = 0|)
(label pc_tc4)
7. (trw |r=ry2| (use pc_tc2 pc_tc4 mode: always) add_rzero)
;R=RY2
;deps: (PC_TC1 PC_TC4)
8. (trw |β!(r)| pc_tc2 (use * mode: exact))
;β!(R)
;deps: (PC_TC1 PC_TC4)
9. (trw |β!(s)| (lowerclass pc_tc3 *))
;β!(S)
;deps: (PC_TC1 PC_TC3 PC_TC4)
10. (trw |(pc(α!,β!))(ry1 + s)| (pluscutdef1 pc_tc2 *))
;(PC(α!,β!))(RY1+S)
;deps: (PC_TC1 PC_TC3 PC_TC4)
11. (rw * (use pc_tc4 mode: exact))
;(PC(α!,β!))(S)
;deps: (PC_TC1 PC_TC3 PC_TC4)
(label pc_tc5)
;second case
13. (assume |ry2 = 0|)
(label pc_tc6)
14. (trw |r=ry1| (use pc_tc2 pc_tc6 mode: always) add_rzero)
;R=RY1
;deps: (PC_TC1 PC_TC6)
15. (trw |α!(r)| pc_tc2 (use * mode: exact))
;α!(R)
;deps: (PC_TC1 PC_TC6)
16. (trw |α!(s)| (lowerclass pc_tc3 *))
;α!(S)
;deps: (PC_TC1 PC_TC3 PC_TC6)
17. (trw |(pc(α!,β!))(s + ry2)| (pluscutdef1 pc_tc2 *))
;(PC(α!,β!))(S+RY2)
;deps: (PC_TC1 PC_TC3 PC_TC6)
18. (rw * (use pc_tc6 mode: exact))
;(PC(α!,β!))(S)
;deps: (PC_TC1 PC_TC3 PC_TC6)
(label pc_tc7)
;third case
19. (assume |ry1 ≠ 0 ∧ ry2 ≠ 0|)
(label pc_tc10)
;labels: RZEROLEAST
;∀R.¬R<0
20. (derive |r≠0| (rzeroleast pc_tc3))
;deps: (PC_TC3)
(label pc_tc11)
;labels: DIVISIONRAT
;∀R R1.¬R1=0⊃R1*DIV(R,R1)=R
21. (ue ((r.s)(r1.r)) divisionrat * divsort)
;R*DIV(S,R)=S
;deps: (PC_TC3)
22. (trw |r*(div(s,r))<r| (pc_tc3 *) divsort)
;R*DIV(S,R)<R
;deps: (PC_TC3)
;labels: LESS_LMULTRATPRESERVING
;∀R R1 R2.¬R2=0⊃R<R1≡R2*R<R2*R1
23. (ue ((r.|div(s,r)|)(r1.|1|)(r2.r)) less_lmultratpreserving
pc_tc11 *)
;DIV(S,R)<1
;deps: (PC_TC3)
(label pc_tc12)
24. (ue ((r.|div(s,r)|)(r1.|1|)(r2.ry1)) less_lmultratpreserving
pc_tc10 pc_tc11 *)
;RY1*DIV(S,R)<RY1
;deps: (PC_TC3 PC_TC10)
(label pc_tc13)
;labels: LOWERCLASS
13. (AXIOM |∀α!.(∀R S.α!(R)∧S<R⊃α!(S))|)
26. (ue ((α!.α!)(r.|ry1|)(s.|ry1*div(s,r)|)) lowerclass
pc_tc2 * pc_tc11)
;α!(RY1*DIV(S,R))
;deps: (PC_TC1 PC_TC3 PC_TC10)
(label pc_tc14)
26. (ue ((r.|div(s,r)|)(r1.|1|)(r2.ry2)) less_lmultratpreserving
pc_tc10 pc_tc11 pc_tc12)
;RY2*DIV(S,R)<RY2
;deps: (PC_TC3 PC_TC10)
(label pc_tc15)
27. (ue ((α!.β!)(r.|ry2|)(s.|ry2*div(s,r)|)) lowerclass
pc_tc2 * pc_tc11)
;β!(RY2*DIV(S,R))
;deps: (PC_TC1 PC_TC3 PC_TC10)
(label pc_tc16)
28. (trw |(pc(α!,β!))((ry1*div(s,r))+(ry2*div(s,r)))| pluscutdef1
pc_tc14 pc_tc16 pc_tc11)
;(PC(α!,β!))(RY1*DIV(S,R)+RY2*DIV(S,R))
;deps: (PC_TC1 PC_TC3 PC_TC10)
(label pc_tc17)
;labels: RDISTRAT
;∀R0 R1 R2.(R1+R2)*R0=R1*R0+R2*R0
29. (ue ((r0.|div(s,r)|)(r1.|ry1|)(r2.|ry2|)) rdistrat pc_tc11)
;(RY1+RY2)*DIV(S,R)=RY1*DIV(S,R)+RY2*DIV(S,R)
;deps: (PC_TC3)
30. (rw pc_tc17 (use * mode: always direction: reverse))
;(PC(α!,β!))((RY1+RY2)*DIV(S,R))
;deps: (PC_TC1 PC_TC3 PC_TC10)
31. (rw * (use pc_tc2 mode: always direction: reverse))
;(PC(α!,β!))(R*DIV(S,R))
;deps: (PC_TC1 PC_TC3 PC_TC10)
32. (rw * (use divisionrat mode: always) pc_tc11)
;(PC(α!,β!))(S)
;deps: (PC_TC1 PC_TC3 PC_TC10)
(label pc_tc18)
33. (trw |ry1 = 0 ∨ ry2 = 0 ∨ (ry1 ≠ 0 ∧ ry2 ≠ 0)|)
;RY1=0∨RY2=0∨¬RY1=0∧¬RY2=0
34. (cases * pc_tc5 pc_tc7 pc_tc18)
;(PC(α!,β!))(S)
;deps: (PC_TC1 PC_TC3)
35. (ci (pc_tc1 pc_tc3))
;(PC(α!,β!))(R)∧S<R⊃(PC(α!,β!))(S)
;proof pluscut_dense
(proof pluscut_dense)
1. (assume |(pc(α!,β!))(r)|)
(label pcd1)
2. (rw * (open pc))
;∃R1 R2.α!(R1)∧β!(R2)∧R=R1+R2
;deps: (PCD1)
3. (define ry1 |∃r2.α!(ry1)∧β!(r2)∧r=ry1 + r2| *)
;RY1 is unknown.
;the symbol RY1 is given the same declaration as R
;deps: (PCD1)
4. (define ry2 |α!(ry1)∧β!(ry2)∧r=ry1 + ry2| *)
;RY2 is unknown.
;the symbol RY2 is given the same declaration as R
;deps: (PCD1)
(label pcd2)
5. (ue ((α!.α!)(r.ry1)) densecut *)
;∃S.RY1<S∧α!(S)
;deps: (PCD1)
6. (define sy |ry1<sy∧α!(sy)| (densecut *))
(label pcd3)
;labels: LESS_RADDRATPRESERVING
;∀R S R1.R<S≡R+R1<S+R1
7. (ue ((r.ry1)(s.sy)(r1.ry2)) less_raddratpreserving *)
;RY1+RY2<SY+RY2
;deps: (PCD1)
(label pcd4)
8. (trw |(pc(α!,β!))(sy+ry2)| (pluscutdef1 pcd3 pcd2))
;(PC(α!,β!))(SY+RY2)
;deps: (PCD1)
(label pcd5)
9. (derive |∃s.r<s∧(pc(α!,β!))(s)| (pcd4 pcd5)
(use pcd2 mode: always))
;deps: (PCD1)
10. (ci pcd1)
;(PC(α!,β!))(R)⊃(∃S.R<S∧(PC(α!,β!))(S))
;to finish
;;;;(trw |∀α! β!.cut(a!plβ!)|)
;
;;;;(trw |∀α! β!.∀r s.¬α!(r)∧¬β!(s)⊃¬α!plβ!(r+s)|)
;
;;;;(trw |∀α! β!.α!plβ!=β!plα!|)
;
;;;;(trw |∀α1! α2! α3!.(α1!plα2!)plα3!=α1!pl(α2!plα3!)|)
;
;;;;(trw |∀α!.∀s.∃r1 r2.α!(r1)∧¬α!(r2)∧r1+s=r2|)